package com.xunlai.infra.permission.business.service;

import com.xunlai.infra.permission.business.vo.photoGallery.PhotoBatchCreateVo;
import com.xunlai.infra.permission.business.vo.photoGallery.PhotoCreateVo;
import com.xunlai.infra.permission.business.vo.photoGallery.PhotoListVo;
import com.xunlai.infra.permission.business.vo.photoGallery.QrCodeGenerateVo;
import com.xunlai.infra.permission.common.vo.BasePageRespVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.OutputStream;
import java.util.List;

/**
 * @author liang
 * @date 8/7/23 7:22 PM
 */
public interface PhotoGalleryService {

    String uploadPhoto(MultipartFile file);

    List<String> batchUploadPhoto(MultipartFile[] file);

    Long createPhoto(PhotoCreateVo photoCreateVo);
    List<Long> batchCreatePhoto(PhotoBatchCreateVo photoBatchCreateVo);

    void updatePhoto(Long id ,PhotoCreateVo photoCreateVo);

    BasePageRespVo<PhotoListVo> listPhoto(String photoType,String name,String userId,Integer pageNum,Integer pageSize,Boolean official);
    BasePageRespVo<PhotoListVo> listPhoto(String province,String scenic,String photoType,String name,String userId,Integer pageNum,Integer pageSize,Boolean official);

    void createQrCodeToStream(QrCodeGenerateVo generateVo, OutputStream outputStream);

    void deletePhoto(Long id);

    void deletePhoto(Long userId,Long id);
}
